{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "aab95d0d-b7f6-4f1f-acff-23c045e6183e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "AttributeError",
     "evalue": "module 'tensorflow._api.v2.data' has no attribute 'Dataser'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[18], line 20\u001b[0m\n\u001b[0;32m     18\u001b[0m BUFFER_SIZE\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m6000\u001b[39m\n\u001b[0;32m     19\u001b[0m BATCH_SIZE\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m256\u001b[39m\n\u001b[1;32m---> 20\u001b[0m train_dataset\u001b[38;5;241m=\u001b[39mtf\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mDataser\u001b[38;5;241m.\u001b[39mfrom_tensor_slices(x_train)\u001b[38;5;241m.\u001b[39mshuffle(BUFFER_SIZE)\u001b[38;5;241m.\u001b[39mbatch(BATCH_SIZE)\n",
      "\u001b[1;31mAttributeError\u001b[0m: module 'tensorflow._api.v2.data' has no attribute 'Dataser'"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import os\n",
    "import time\n",
    "from IPython import display\n",
    "mnist=tf.keras.datasets.mnist\n",
    "(x_train,y_train),(_,_)=mnist.load_data()\n",
    "x_train=x_train[y_train==8,]\n",
    "for i in range(16):\n",
    "    plt.subplot(4,4,i+1)\n",
    "    t=np.random.randint(1,x_train.shape[0])\n",
    "    plt.axis(\"off\")\n",
    "    plt.imshow(x_train[t],cmap='gray')\n",
    "plt.show()\n",
    "x_train=x_train.reshape(x_train.shape[0],28,28,1).astype('float32')\n",
    "x_train=(x_train-127.5)/127.5\n",
    "BUFFER_SIZE=6000\n",
    "BATCH_SIZE=256\n",
    "train_dataset=tf.data.Dataser.from_tensor_slices(x_train).shuffle(BUFFER_SIZE).batch(BATCH_SIZE)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "a5b76724-bccd-41d1-a35a-6d477e161961",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\anaconda3\\Lib\\site-packages\\keras\\src\\layers\\core\\dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
      "  super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_3\"</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1mModel: \"sequential_3\"\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
       "┃<span style=\"font-weight: bold\"> Layer (type)                         </span>┃<span style=\"font-weight: bold\"> Output Shape                </span>┃<span style=\"font-weight: bold\">         Param # </span>┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
       "│ dense_6 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                      │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">12544</span>)               │       <span style=\"color: #00af00; text-decoration-color: #00af00\">1,254,400</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LeakyReLU</span>)              │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">12544</span>)               │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ batch_normalization                  │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">12544</span>)               │          <span style=\"color: #00af00; text-decoration-color: #00af00\">50,176</span> │\n",
       "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)                 │                             │                 │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ reshape (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Reshape</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>)           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_transpose (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)           │         <span style=\"color: #00af00; text-decoration-color: #00af00\">819,200</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LeakyReLU</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ batch_normalization_1                │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)           │             <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span> │\n",
       "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)                 │                             │                 │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_transpose_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          │         <span style=\"color: #00af00; text-decoration-color: #00af00\">204,800</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LeakyReLU</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ batch_normalization_2                │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          │             <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │\n",
       "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)                 │                             │                 │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_transpose_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)           │           <span style=\"color: #00af00; text-decoration-color: #00af00\">1,600</span> │\n",
       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n",
       "</pre>\n"
      ],
      "text/plain": [
       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
       "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                        \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape               \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m        Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
       "│ dense_6 (\u001b[38;5;33mDense\u001b[0m)                      │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12544\u001b[0m)               │       \u001b[38;5;34m1,254,400\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu (\u001b[38;5;33mLeakyReLU\u001b[0m)              │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12544\u001b[0m)               │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ batch_normalization                  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12544\u001b[0m)               │          \u001b[38;5;34m50,176\u001b[0m │\n",
       "│ (\u001b[38;5;33mBatchNormalization\u001b[0m)                 │                             │                 │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ reshape (\u001b[38;5;33mReshape\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m256\u001b[0m)           │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_transpose (\u001b[38;5;33mConv2DTranspose\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m)           │         \u001b[38;5;34m819,200\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_1 (\u001b[38;5;33mLeakyReLU\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m)           │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ batch_normalization_1                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m)           │             \u001b[38;5;34m512\u001b[0m │\n",
       "│ (\u001b[38;5;33mBatchNormalization\u001b[0m)                 │                             │                 │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_transpose_1 (\u001b[38;5;33mConv2DTranspose\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m64\u001b[0m)          │         \u001b[38;5;34m204,800\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_2 (\u001b[38;5;33mLeakyReLU\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m64\u001b[0m)          │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ batch_normalization_2                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m64\u001b[0m)          │             \u001b[38;5;34m256\u001b[0m │\n",
       "│ (\u001b[38;5;33mBatchNormalization\u001b[0m)                 │                             │                 │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_transpose_2 (\u001b[38;5;33mConv2DTranspose\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m1\u001b[0m)           │           \u001b[38;5;34m1,600\u001b[0m │\n",
       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">2,330,944</span> (8.89 MB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m2,330,944\u001b[0m (8.89 MB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">2,305,472</span> (8.79 MB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m2,305,472\u001b[0m (8.79 MB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">25,472</span> (99.50 KB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m25,472\u001b[0m (99.50 KB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x19fe2d90aa0>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAGbCAYAAAAfhk2/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmW0lEQVR4nO3de3DVdX7/8dfJnZh7F4mEAAlRhHBTNgsNCjPqTq0bGujWHQdaF5WKupM64tAug9PuP5uwO/6stnZwcOkgrUuXdru6lrXieMF1u8EEBIwJyCWRGMItZs8Jhpzczu8Phowslz3vD8dPbs/HzPkjh+/rnA/ffHNe+Z6c8z6BSCQSEQAAHsQN9gIAAKMHpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAm4TBXoAk9ff36/jx40pPT1cgEBjs5QAADCKRiDo6OjR+/HjFxV39XGZIlM7x48eVn58/2MsAAFyD5uZmTZgw4arbDInSSU9PlyQ98cQTSk5Ojjp37tw5831lZGSYM5LU19dnzvT395szp0+fNmfGjh1rzqSlpZkzkhQOh82Znp4ec8ZlP0ycONGckaTrrrvOnGlvbzdnTpw4Yc4kJNh/RHNycswZSWpqajJnbrjhBnMmLy/PnDl48KA5Ex8fb85I0pgxY8yZC49hFt3d3eaM6y/n+/btM2fGjRsX9bbhcFg/+tGPotoPMSuduro6PfDAAzp8+LBWrlypH//4x1E/VXZhu+TkZFPpuDyop6SkmDOSW+m4ZJKSkswZyz67wHU/uDz9+YdOty/HZT+4/p9cHmRcfuFx+T+5lI7rfvB17Lnsb1/7TvL38+Tyc+Gy7yR//6doHh9i8kKCcDisxYsXa+7cuaqtrVV9fb02b94ci5sGAIwgMSmd119/XcFgUM8884ymTJmiyspKbdq0KRY3DQAYQWLy9Nq+ffs0f/58paamSpJmzZql+vr6K24fDocv+ttAKBSKxTIAAENcTM50QqGQCgoKBr4OBAKKj4+/4h9bq6qqlJmZOXDhlWsAMDrEpHQSEhIu+UNVSkqKOjs7L7v92rVrFQwGBy7Nzc2xWAYAYIiLydNrOTk5qquru+i6jo6OK77ixPoqNQDAyBCTM52SkhJVV1cPfN3U1KRwOOz8fgEAwMgUk9JZuHChgsGgtmzZIklav3697rrrLuc3ZwEARqaYPL2WkJCgjRs3atmyZVqzZo36+vq0c+fOWNw0AGAEidlEgiVLlujQoUOqra1VaWmp02iWQCBgepeuyziNvXv3mjOSNGfOHHPG5QUS48ePN2fOnj1rztx2223mjCS98sor5swfmsV0OS7vQJ82bZo5I0nvvPOOOdPW1mbOTJ482Zxx+dvn4cOHzRnJbZSLyy+XixcvNmdcxg7ddNNN5owknTp1ypxxmX7gMurpgw8+MGck6eabbzZnLFM3LOOxYjp7LS8vz6kIAACjA5+nAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvInp7LVr1dnZqb6+vqi3dxkKWVhYaM5IUmNjoznjsj7L4LwLLPvsgt//0L2v8r5OnDhhzqSmppozrsMQXe4rLS3NnHEZgltTU2PO+Jx/WFpaas64DO90uZ+enh5zRpKuu+46c8ZlSGggEDBnXB+/xo0bZ850dHQ43dcfwpkOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvBlSU6Z7enoUFxd9D3Z1dZnvY+/eveaMJN16663mzMSJE82ZDz/80Jw5dOiQOfNXf/VX5ozkNoH3rbfeMmduuOEGc+a2224zZyTpxz/+sTlzxx13mDMu06xnzJhhziQkuP1YRyIRc6azs9Ocuffee82Zf//3fzdnMjMzzRlJevfdd80Zl+MhPT3dnHH5WZdkely9IBQKRb1td3d39GsxrwQAAEeUDgDAG0oHAOANpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8GZIDfxMS0tTcnJy1Nt/9tln5vuYMGGCOSPZBtr5VlhYaM5s3rzZ6b6mTZtmzpSVlZkzu3btMmfa2trMGUm65557zBmXwYunT582Z8aPH2/OfO1rXzNnJLdhri5Dd9977z1zZu7cueaMywBTye17e+rUKXPGZQDsggULzBlJ+uijj8yZm266KeptLccBZzoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4M2QGviZnp6ulJQU0/ZWCQlu/+X4+Hhzpre315xZtmyZOfPggw+aM3/3d39nzkjSli1bzJkf/OAH5syZM2fMmebmZnNGkqZOnWrOuAyTLC4uNmdyc3PNmX/8x380ZyTpiy++MGduvPFGc8Yy1PeCY8eOmTMux5Ak3X777eZMWlqaOfPuu++aMy4DdyUpFAqZM5afp56enqi35UwHAOANpQMA8CZmpVNRUaFAIDBwKSoqitVNAwBGiJj9TWf37t3avn27SktLJbn9DQQAMLLFpHR6e3tVV1enhQsXOv1BDQAwOsTk6bX9+/crEolozpw5GjNmjO6+++6rvtokHA4rFApddAEAjHwxKZ2GhgYVFxdr69atqq+vV2JiolatWnXF7auqqpSZmTlwyc/Pj8UyAABDXExKZ/ny5aqurlZJSYkKCgr0/PPPa8eOHVc8g1m7dq2CweDAxfX9FQCA4eUreXNoVlaW+vv71draqoyMjEv+PTk52ekNYgCA4S0mZzqrV6/Wtm3bBr6uqalRXFwcT5sBAC4SkzOdOXPmaN26dcrNzVVvb68qKiq0YsUKpaamxuLmAQAjRExK5/7771dDQ4PKy8uVnp6upUuXqrKyMhY3DQAYQQIRl8mFMRYKhZSZmamKigrT33pcBhS6TkpwGTg4ZswYc+brX/+6OdPW1mbOVFdXmzPS+b/XWbmsb8GCBeaM63vE9u7da87s37/fnHHZd/PmzTNnFi5caM5I0ueff27OuAwXXbx4sTnj8r0NBALmjCQdOHDAnHHZdxMnTjRnpkyZYs5I0smTJ82Z9vb2qLft6upSZWWlgsHgZf+O/2XMXgMAeEPpAAC8oXQAAN5QOgAAbygdAIA3lA4AwBtKBwDgDaUDAPCG0gEAeEPpAAC8oXQAAN5QOgAAb76SD3FzFYlEZJk/esMNN5jv48yZM+aM5DZw8J133jFnxo0bZ864DCicMGGCOSNJ//d//2fOvP/+++ZMenq6ObNkyRJzRpKSkpLMmW9+85vmTFNTkzlz2223mTNHjhwxZyTpvffeM2dcBpKWl5ebMz/60Y/MGZfvq+T2GDF58mRz5rnnnjNn8vLyzBlJWrVqlTljGfgZDoej3pYzHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHgTiFjGOn9FQqGQMjMzVVFRoeTk5KhzHR0d5vvKzc01ZySpv7/fnHGZlNzc3GzO3HzzzebMmDFjzBlJ2r17tzmzaNEic8ZlQrerUChkzvT09JgzTz75pDmzc+dOc2bmzJnmjOT2fVqzZo05M3v2bHOmtbXVnHH1ySefmDNFRUXmjMvP4K9//WtzRpLmz59vzkycODHqbc+dO6dHHnlEwWBQGRkZV92WMx0AgDeUDgDAG0oHAOANpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8CZhsBfwZZFIRJb5oy6DLl0Gd0pSaWmpOfPzn//cnLnlllvMmUOHDpkzs2bNMmckKTEx0Zypra01Z1yGcN50003mjKQ/OKDwck6ePGnOdHd3mzMuAzUfe+wxc0aSXn75ZXPGZbhoV1eXOeNyPCxYsMCckaTCwkJz5vDhw+aMy5DQ73//++aMJJ0+fdqc+cEPfhD1tp2dnVFvy5kOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHgzpAZ+ZmZmKiUlJertf/WrX5nvY9myZeaMJK1fv96cmTp1qjnz3//93+bMXXfdZc5s3brVnJGkP/7jPzZnfvvb35ozY8eONWfOnDljzkjSjTfeaM7Exdl/X3v//ffNmUcffdSc+fM//3NzRpKuu+46c8ZliKlLJjc315x59tlnzRlJevDBB82Z1157zZxJTk42Z55++mlzRpLGjRtnzmzevDnqbXt6eqLeljMdAIA3lA4AwBtz6bS1tamgoEBNTU0D19XV1amkpETZ2dlas2aN6TNxAACjh6l0zpw5o7KysosKJxwOa/HixZo7d65qa2tVX19vei4QADB6mErnvvvu03333XfRda+//rqCwaCeeeYZTZkyRZWVldq0aVNMFwkAGBlMpbNx40Y9/vjjF123b98+zZ8/X6mpqZLOfwxyfX39VW8nHA4rFApddAEAjHym0rncZ4eHQiEVFBQMfB0IBBQfH6/29vYr3k5VVZUyMzMHLvn5+ZZlAACGqWt+9VpCQsIlrzdPSUlRZ2fnFTNr165VMBgcuDQ3N1/rMgAAw8A1vzk0JydHdXV1F13X0dGhpKSkK2aSk5Od3hgFABjervlMp6SkRNXV1QNfNzU1KRwOKycn51pvGgAwwlxz6SxcuFDBYFBbtmyRdH5czF133aX4+PhrXhwAYGS55qfXEhIStHHjRi1btkxr1qxRX1+fdu7cGYu1AQBGmEAkRuMDWlpaVFtbq9LSUvOwxlAopMzMTFVVVZkGfp49e9a6TL388svmjCT927/9mznz4osvmjOZmZnmzHvvvWfOuAySlKQvvvjCnDl69Kg509XVZc7ccccd5owkbdu2zZzp6+szZyZPnmzOrFy50pxxGRoruQ2FXLdunTnz3e9+15w5deqUOeP6FP+ePXvMmdWrV5szH374oTnT2tpqzkhuA3TfeuutqLft7e3Vrl27FAwGlZGRcdVtYzZlOi8vT3l5ebG6OQDACMTATwCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwJmYDP2Oht7dXvb29UW/v8jHXf/qnf2rOSBr4vCCLrKwsc8Zl6Pf48ePNmbS0NHNGkhoaGswZy7TaC26//XZz5v777zdnJOnZZ581Z9LT082ZXbt2mTM1NTXmTCgUMmckKRwOmzOPPPKIObN+/XpzZsWKFeZMW1ubOSNJixYtMmf27t1rzgQCAXPGMoX/Wu9r6dKlUW/b1dUV9fHNmQ4AwBtKBwDgDaUDAPCG0gEAeEPpAAC8oXQAAN5QOgAAbygdAIA3lA4AwBtKBwDgDaUDAPCG0gEAeDOkBn6ePHlSycnJUW8/duxY831kZ2ebM5I0ZcoUc+aNN94wZ2bPnm3OBINBc6a/v9+ckaTrr7/enPne975nzpw5c8ac+bM/+zNzRpI2b95szrz88svmTHV1tTmTn59vzmzatMmckaTy8nJz5pe//KU5U1hYaM5YBgFf8O1vf9uckaTt27ebM7feeqs54zI01uXnQpLq6+vNGcs+twyL5UwHAOANpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8IbSAQB4Q+kAALwZUgM/c3NzlZKSEvX2r732mvk+XIZPStKBAwfMGcvw0gv+4i/+wpw5e/asOeM6+PRXv/qVObNo0SJzJiMjw5y57777zBlJevfdd82Z//3f/zVnenp6zJmkpCRzpqyszJyR3I6j22+/3ZyZOnWqOeMy1Pa5554zZyTp3nvvNWc++OADc+bOO+80Z1zNnTvXnNmxY0fU21qObc50AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMCbITXw06q8vNyc+elPf+p0X9/97nfNmd7eXnPm7//+782Z48ePmzN33HGHOSNJkydPNmd27dplzrS0tJgzp0+fNmckt2GIjY2N5kxxcbE5c+rUKXPmf/7nf8wZSVqyZIk5841vfMOc+fjjj82Zd955x5xx+b5KUnt7uznzrW99y5zZuHGjOTNr1ixzRnIbupuamhr1tt3d3VFvy5kOAMAbSgcA4I25dNra2lRQUKCmpqaB6yoqKhQIBAYuRUVFsVwjAGCEMP1N58yZM1q8ePFFhSNJu3fv1vbt21VaWipJio+Pj9kCAQAjh+lM57777rvk0xl7e3tVV1enhQsXKisrS1lZWUpPT4/pIgEAI4OpdDZu3KjHH3/8ouv279+vSCSiOXPmaMyYMbr77rt17Nixq95OOBxWKBS66AIAGPlMpVNYWHjJdQ0NDSouLtbWrVtVX1+vxMRErVq16qq3U1VVpczMzIFLfn6+bdUAgGHpml+9tnz5clVXV6ukpEQFBQV6/vnntWPHjquevaxdu1bBYHDg0tzcfK3LAAAMAzF/c2hWVpb6+/vV2tqqjIyMy26TnJys5OTkWN81AGCIu+YzndWrV2vbtm0DX9fU1CguLo6nzAAAl7jmM505c+Zo3bp1ys3NVW9vryoqKrRixQrTCAUAwOhwzaVz//33q6GhQeXl5UpPT9fSpUtVWVkZi7UBAEaYQCQSiQz2IkKhkDIzM/XQQw8pKSkp6tzZs2fN93XPPfeYM5K0ZcsWc2bmzJnmTEFBgTnT2tpqznz++efmjCRVV1ebMy5Ptd54443mjOugyyeffNKcycvLM2dchpgePnzYnMnJyTFnJDn9nfXQoUPmjMtAzcu9cvYP2bNnjzkjSZMmTTJnfv7zn5szFRUV5sxNN91kzkjSgQMHzJnt27dHvW1vb69qa2sVDAav+Lf8C5i9BgDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG9i/smh1yI3N1cpKSlRbz958mTzfXz88cfmjCT19PQ45azefvttc8ZlevFtt91mzkjSf/zHf5gzjz/+uDlz9OhRc+af/umfzBlJ+n//7/+ZMy4Tgi0T1C8oKioyZxITE80ZSdqxY4c54zL1+ODBg+ZMV1eXOZOZmWnOSOc//djK5Xg4duyYOdPf32/OSG5T5S0/t52dnXrooYei2pYzHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwZkgN/Ozs7FRfX1/U2+/Zs8d8H9nZ2eaMJM2YMcOcqampMWdchpguWrTInHEdhvjSSy+ZM+PHjzdnSkpKzBmXQZKS24DHAwcOmDN/9Ed/ZM64HEMFBQXmjCTV1taaM6FQyJxZunSpOVNcXGzO/Nd//Zc5I0m33nqrOfPaa6+ZM7fccos54zIIV5ImTJhgznz66adRb2sZyMqZDgDAG0oHAOANpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8IbSAQB4M6QGfp46dUpJSUlRb5+SkmK+j9OnT5szkhQXZ+/n0tJSc2b79u3mTHx8vDnzrW99y5yRpGPHjpkz3/ve98yZX/7yl+bMO++8Y85I0syZM82Z5557zpy5//77zZmbb77ZnPE5+HTatGnmjMuw1EAgYM4cP37cnJGk119/3ZxxGWLa0tJizrh8jySpra3NnLGsr7u7O+ptOdMBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG+G1MDPCRMmKDk5Oertg8Gg+T4KCwvNGUn69a9/bc587WtfM2cWL15szjQ1NZkzLvtOksaNG2fOPPHEE+bMI488Ys64DD6VpPHjx5szO3bsMGdqamrMmRkzZpgz06dPN2ck6frrrzdnPvnkE3PG8jN+wb59+8wZl2GkknTmzBlz5ic/+Yk5s3DhQnPmxIkT5owkdXZ2mjOTJk2KettwOBz1tpzpAAC8oXQAAN6YSufVV19VYWGhEhISNG/ePDU0NEiS6urqVFJSouzsbK1Zs0aRSOQrWSwAYHiLunSOHDmiBx54QOvXr1dLS4smTZqklStXKhwOa/HixZo7d65qa2tVX1+vzZs3f4VLBgAMV1GXTkNDgyorK/Wd73xH48aN06OPPqra2lq9/vrrCgaDeuaZZzRlyhRVVlZq06ZNX+WaAQDDVNSvXisrK7vo64MHD6qoqEj79u3T/PnzlZqaKkmaNWuW6uvrr3pb4XD4olc7hEIhy5oBAMOU0wsJuru79fTTT+uxxx5TKBRSQUHBwL8FAgHFx8ervb39ivmqqiplZmYOXPLz812WAQAYZpxK56mnnlJaWpoefvhhJSQkXPK6+5SUlKu+Lnzt2rUKBoMDl+bmZpdlAACGGfObQ99880298MILqq6uVmJionJyclRXV3fRNh0dHUpKSrribSQnJzu9QQwAMLyZznSOHj2q5cuXa8OGDQPvei4pKVF1dfXANk1NTQqHw8rJyYntSgEAw17UpXPu3DmVlZVpyZIlKi8v19mzZ3X27FndfvvtCgaD2rJliyRp/fr1uuuuu5xHkgAARq6on15744031NDQoIaGBr344osD1zc2Nmrjxo1atmyZ1qxZo76+Pu3cufMrWSwAYHgLRGI0PqClpUW1tbUqLS3V2LFjTdlQKKTMzEz98Ic/VEpKStQ5l7Op1tZWc0aSjh8/bs589tln5syDDz5ozrgMrDx27Jg5I0m/+c1vzJmZM2eaM5YBghccOnTInJHcBlDecMMN5kxjY6M5M2/ePHMmNzfXnJGk/v5+c2bixInmzIYNG8wZl+9tVlaWOSNJU6ZMMWdOnjxpzuTl5Zkze/bsMWck6Y477jBnenp6ot62q6tLP/zhDxUMBpWRkXHVbWM2ZTovL89pJwIARg8GfgIAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCANzEb+BkLPT09psnRX/7wuGg99NBD5owkbdq0yZxxmRDsMjnbOtVbkv7zP//TnJHcJve+//775kxBQYE5c/ToUXNGkr7xjW+YM7W1tebMjBkzzJn8/HxzJhgMmjOS2+Rxl8nULt/bcePGmTO7du0yZySpsLDQnCkuLjZn4uLsv/O7fuLyzTffbM709fVFvW1nZ2fU23KmAwDwhtIBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeDKmBn83NzUpKSop6+wkTJpjv45//+Z/NGUmaNm2aOZOXl2fOuAxrfOutt8yZ7Oxsc0aSpk6das58/PHH5ozL4NM777zTnJGkc+fOmTMJCfYfnZ6eHnOmvr7enHEZACtJP/vZz8yZb3/72+aMy2DWBQsWmDOHDx82ZyS3n0HL49YFe/bsMWc++ugjc0Zy+3lqbW2Netvu7u6ot+VMBwDgDaUDAPCG0gEAeEPpAAC8oXQAAN5QOgAAbygdAIA3lA4AwBtKBwDgDaUDAPCG0gEAeEPpAAC8GVIDPydPnqyUlJSot9+/f7/5PjIyMswZSTpx4oQ5k5qaas6cPn3anJk9e7Y509/fb85I0oEDB8yZmTNnmjNFRUXmTG1trTkjSTNmzDBnXIZ3ugxdzMrKMmdc/eVf/qU5c/LkSXPGZcDqoUOHzBlXLoNCP/vsM3MmJyfHnJkzZ445I7ntc8vjl+XY5kwHAOANpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8IbSAQB4Q+kAALwZUgM/W1tblZycHPX2s2bNMt/H9OnTzRlJ2rNnjznjMqxx3Lhx5sznn39uzrgO/CwpKTFnfvOb35gzv/vd78yZe+65x5yR3IZJBgIBc6avr8+cmTp1qjnjMghXchve+cknn5gzjz76qDnj8n+68cYbzRlJeuWVV8wZl0HCLgNgv/nNb5ozktTQ0GDOHD16NOptu7u7o96WMx0AgDeUDgDAG1PpvPrqqyosLFRCQoLmzZs3cMpWUVGhQCAwcHH5LBQAwMgXdekcOXJEDzzwgNavX6+WlhZNmjRJK1eulCTt3r1b27dvV3t7u9rb2/Xhhx9+ZQsGAAxfUb+QoKGhQZWVlfrOd74j6fwfA++++2719vaqrq5OCxcuVFpa2le2UADA8Bd16ZSVlV309cGDB1VUVKT9+/crEolozpw5amlp0aJFi7Rx40ZNnDjxircVDocVDocHvg6FQg5LBwAMN04vJOju7tbTTz+txx57TA0NDSouLtbWrVtVX1+vxMRErVq16qr5qqoqZWZmDlzy8/OdFg8AGF6c3qfz1FNPKS0tTQ8//LASExO1fPnygX97/vnnVVhYqFAodMXXrq9du1arV68e+DoUClE8ADAKmEvnzTff1AsvvKDq6molJiZe8u9ZWVnq7+9Xa2vrFUsnOTnZ9CZQAMDIYHp67ejRo1q+fLk2bNgw8M7+1atXa9u2bQPb1NTUKC4ujjMXAMAloj7TOXfunMrKyrRkyRKVl5fr7NmzkqTZs2dr3bp1ys3NVW9vryoqKrRixQqlpqZ+ZYsGAAxPUZfOG2+8oYaGBjU0NOjFF18cuL6xsVEHDhxQeXm50tPTtXTpUlVWVn4liwUADG9Rl86SJUsUiUQu+29VVVWqqqqK2aIAACPTkJoynZmZqZSUlKi3r6+vN9/H2LFjzRnJbULwBx98YM6MGTPGnHF5KjM3N9eckaSWlhZz5mrv2bqSpKQkc2bXrl3mjCT99re/NWdmzJjhdF9WTz31lDnz9a9/3em+Dh48aM7Mnz/fnHnppZfMmYKCAnPmci90isa0adPMmWPHjpkzLo9F586dM2ckt6noxcXFUW9rWRcDPwEA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8IbSAQB4Q+kAALyhdAAA3lA6AABvKB0AgDeUDgDAmyE18LO/v980WNMyHPSCjz76yJyRNPD5QRYuQzVd7uf66683Z1y5DIW88847zZm3337bnDl+/Lg5I0m33HKLOeMymLWsrMyc+fJHwUfrrbfeMmdcuQygXLx4sTmzY8cOc6a/v9+ckaTf/e535oxlOOYFLkNta2trzRlJamtrc8pFq7u7O+ptOdMBAHhD6QAAvKF0AADeUDoAAG8oHQCAN5QOAMAbSgcA4A2lAwDwhtIBAHhD6QAAvKF0AADeDInZa5FIRJIUDodNOcu8nwvi4+PNGdf7sv5/XO+nq6vLnImLc/t9w2V9nZ2dXu6np6fHnJHcvk8u+89lrl4gEDBnXI4HyW3/uew7X8eDy9pc78tln7vMhvP5f3K5/QuP5VcTiESz1Vfss88+U35+/mAvAwBwDZqbmzVhwoSrbjMkSqe/v1/Hjx9Xenr6Rb/ZhUIh5efnq7m5WRkZGYO4wsHFfjiP/XAe++E89sN5Q2E/RCIRdXR0aPz48X/wWYAh8fRaXFzcVdsxIyNjVB9UF7AfzmM/nMd+OI/9cN5g74fMzMyotuOFBAAAbygdAIA3Q7p0kpOT9Q//8A9KTk4e7KUMKvbDeeyH89gP57Efzhtu+2FIvJAAADA6DOkzHQDAyELpAAC8oXQAAN5QOkNcRUWFAoHAwKWoqGiwl4RB0NbWpoKCAjU1NQ1cx7ExOr366qsqLCxUQkKC5s2bp4aGBknD53gYsqVTV1enkpISZWdna82aNVHN9BmJdu/ere3bt6u9vV3t7e368MMPB3tJXl3uwXa0HRtnzpxRWVnZRftAGn3HxpUebEfT8XDkyBE98MADWr9+vVpaWjRp0iStXLlS0jA6HiJDUFdXV2Ty5MmRVatWRQ4fPhy55557Iv/6r/862MvyrqenJ5Kenh7p6OgY7KUMitOnT0fmz58fkRRpbGyMRCKj89i48847I88+++xF+2G0HRuHDx+OZGdnR372s59FTpw4Ebn33nsjpaWlo+54eO211yIbNmwY+Prtt9+OJCUlDavjYUiWzi9+8YtIdnZ25IsvvohEIpHI3r17IwsWLBjkVfm3e/fuSFpaWmTKlCmRlJSUyJ/8yZ9EPv3008FeljeXe7AdjcfGkSNHIpFI5KL9MNqOjSs92I7G4+HLNmzYEJk+ffqwOh6G5NNr+/bt0/z585WamipJmjVrlurr6wd5Vf41NDSouLhYW7duVX19vRITE7Vq1arBXpY3Gzdu1OOPP37RdaPx2CgsLLzkutF2bJSVlemRRx4Z+PrgwYMqKioalcfDBd3d3Xr66af12GOPDavjYUi+OfTJJ59UV1eX/uVf/mXgurFjx+qTTz5Rdnb2IK5scH366acqLCxUe3v7qBpwGAgE1NjYqMmTJ4/qY+PL++H3jaZjo7u7W9OnT9cTTzyho0ePjtrj4W//9m+1Y8cO1dTUKDEx8aJ/G8rHw5A800lISLhkpENKSorThz+NJFlZWerv71dra+tgL2XQcGxc3mg6Np566imlpaXp4YcfHrXHw5tvvqkXXnhBP/3pTy8pHGloHw9DsnRycnJ0+vTpi67r6OhQUlLSIK1ocKxevVrbtm0b+LqmpkZxcXGj+gPvODbOG63Hxu8/2I7G4+Ho0aNavny5NmzYoOnTp0saXsfDkPg8nd9XUlKin/zkJwNfNzU1KRwOKycnZxBX5d+cOXO0bt065ebmqre3VxUVFVqxYsXA89ejEcfGeaPx2Ljcg+1oOx7OnTunsrIyLVmyROXl5QMfgT579uzhczwM9isZLqenpycyduzYyEsvvRSJRCKRVatWRcrKygZ5VYPj+9//fiQrKyuSn58f+Zu/+ZvI2bNnB3tJ3un3Xio8Wo+NL++HSGR0HRudnZ2RadOmRf76r/860tHRMXDp7u4eVcfDL37xi4ikSy6NjY3D5ngYki8kkKRXXnlFy5YtU3p6uvr6+rRz504VFxcP9rIwCH7/D+gcG6PPK6+8oqVLl15yfWNjo/bu3cvxMIwM2dKRpJaWFtXW1qq0tFRjx44d7OVgCOHYwJdxPAwfQ7p0AAAjy5B89RoAYGSidAAA3lA6AABvKB0AgDeUDgDAG0oHAOANpQMA8IbSAQB4Q+kAALz5/zlgHuaUMFMJAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def make_generator_model():\n",
    "    model=tf.keras.Sequential()\n",
    "    model.add(tf .keras.layers .Dense (7*7*256,use_bias=False, input_shape=(100,)))\n",
    "    model.add(tf.keras.layers.LeakyReLU())\n",
    "    model.add(tf.keras.layers.BatchNormalization ())\n",
    "    model.add(tf.keras.layers .Reshape ( (7,7,256)))\n",
    "    model.add(tf.keras.layers.Conv2DTranspose(128,(5,5), strides=(1,1),padding='SAME',use_bias=False))\n",
    "    model.add(tf.keras.layers.LeakyReLU())\n",
    "    model.add(tf.keras.layers.BatchNormalization())\n",
    "    model.add(tf.keras.layers.Conv2DTranspose(64,(5,5), strides=(2,2),padding='SAME' ,use_bias=False))\n",
    "    model.add(tf.keras.layers .LeakyReLU())\n",
    "    model.add(tf.keras.layers.BatchNormalization())\n",
    "    model.add(tf.keras.layers.Conv2DTranspose (1, (5,5) , strides= (2,2),padding='SAME' , use_bias=False,activation='tanh'))\n",
    "    return model\n",
    "generator=make_generator_model()\n",
    "generator.summary() \n",
    "noise=tf.random.normal([1,100]) \n",
    "generated_image=generator (noise,training=False)\n",
    "plt.imshow(generated_image [0, :, :,0],cmap='gray')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "7630f9dd-4c39-4845-bb26-81b40bbbe639",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\anaconda3\\Lib\\site-packages\\keras\\src\\layers\\convolutional\\base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
      "  super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_4\"</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1mModel: \"sequential_4\"\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
       "┃<span style=\"font-weight: bold\"> Layer (type)                         </span>┃<span style=\"font-weight: bold\"> Output Shape                </span>┃<span style=\"font-weight: bold\">         Param # </span>┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
       "│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                      │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          │           <span style=\"color: #00af00; text-decoration-color: #00af00\">1,664</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LeakyReLU</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)           │         <span style=\"color: #00af00; text-decoration-color: #00af00\">204,928</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LeakyReLU</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)                  │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ flatten_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>)                  │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">6272</span>)                │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dense_7 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                      │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)                   │           <span style=\"color: #00af00; text-decoration-color: #00af00\">6,273</span> │\n",
       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n",
       "</pre>\n"
      ],
      "text/plain": [
       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
       "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                        \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape               \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m        Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
       "│ conv2d (\u001b[38;5;33mConv2D\u001b[0m)                      │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m64\u001b[0m)          │           \u001b[38;5;34m1,664\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_3 (\u001b[38;5;33mLeakyReLU\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m64\u001b[0m)          │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout (\u001b[38;5;33mDropout\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m64\u001b[0m)          │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m)           │         \u001b[38;5;34m204,928\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ leaky_re_lu_4 (\u001b[38;5;33mLeakyReLU\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m)           │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout_1 (\u001b[38;5;33mDropout\u001b[0m)                  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m)           │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ flatten_3 (\u001b[38;5;33mFlatten\u001b[0m)                  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m6272\u001b[0m)                │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dense_7 (\u001b[38;5;33mDense\u001b[0m)                      │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m)                   │           \u001b[38;5;34m6,273\u001b[0m │\n",
       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">212,865</span> (831.50 KB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m212,865\u001b[0m (831.50 KB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">212,865</span> (831.50 KB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m212,865\u001b[0m (831.50 KB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tf.Tensor([[-0.00111263]], shape=(1, 1), dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "def make_discriminator_model(): \n",
    "    model=tf.keras.Sequential() \n",
    "    model.add(tf.keras.layers.Conv2D(64,(5,5),strides=(2,2),padding='SAME',input_shape=[28,28,1]))\n",
    "    model.add(tf.keras.layers.LeakyReLU()) \n",
    "    model.add(tf.keras.layers.Dropout(0.3))\n",
    "    model.add(tf.keras.layers.Conv2D(128,(5,5),strides=(2,2),padding='SAME'))\n",
    "    model.add(tf.keras.layers.LeakyReLU())\n",
    "    model.add(tf.keras.layers.Dropout(0.3))\n",
    "    model.add(tf.keras.layers.Flatten()) \n",
    "    model.add(tf.keras.layers.Dense(1)) \n",
    "    return model\n",
    "discriminator=make_discriminator_model() \n",
    "discriminator.summary()\n",
    "decision=discriminator(generated_image) \n",
    "print (decision) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "765bdbb6-5eef-4606-9712-263cf2e6ab81",
   "metadata": {},
   "outputs": [],
   "source": [
    "cross_entropy=tf.keras.losses.BinaryCrossentropy (from_logits=True)\n",
    "def discriminator_loss (real_output,fake_output):\n",
    "    real_loss=cross_entropy(tf.ones_like (real_output), real_output)\n",
    "    fake_loss=cross_entropy(tf.zeros_like(fake_output),fake_output)\n",
    "    total_loss=real_loss+fake_loss \n",
    "    return total_loss\n",
    "def generator_loss (fake_output):\n",
    "    return cross_entropy(tf.ones_like(fake_output),fake_output)\n",
    "generator_optimizer=tf.keras.optimizers.Adam(1e-4)\n",
    "discriminator_optimizer=tf.keras.optimizers .Adam(1e-4)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
